package cpsobras.obra;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import cpsobras.obra_arquivos.Obra_Arquivos;
import cpsobras.pessoa.Pessoa;

public class ObrasDAOImp implements ObrasDAO {
	private Session session;
	
	public void setSession(Session session){
		this.session = session;
	}
	
	@Override
	public void salvar(Obra obra) {
		this.session.save(obra);
	}

	@Override
	public void atualizar(Obra obra) {
		// TODO Auto-generated method stub
		this.session.update(obra);
	}

	@Override
	public void excluir(Obra obra) {
		// TODO Auto-generated method stub
		this.session.delete(obra);
	}

	@Override
	public Obra carregar(Integer codigo) {
		// TODO Auto-generated method stub
		return (Obra)this.session.get(Obra.class, codigo);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Obra> listar() {
		// TODO Auto-generated method stub
		return this.session.createCriteria(Obra.class).list();
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public List<Pessoa> lista_pessoa(){
		Criteria criteria = this.session.createCriteria(Pessoa.class);
		criteria.add(Restrictions.eq("ide_tipo_cadast", "C"));
		criteria.add(Restrictions.eq("ide_inativ", true));
		return criteria.list();
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public List<Obra_Arquivos> buscaPorObra(Obra obra){
		Criteria criteria = this.session.createCriteria(Obra_Arquivos.class);
		criteria.add(Restrictions.eq("cod_obra", obra.getCod_obra()));
		return criteria.list();
	}
	
	@Override
	public void salvarArquivos(Obra_Arquivos obra_arquivos){
		this.session.save(obra_arquivos);
	}

}
